package com.suntianci.stock.service;

import com.suntianci.stock.pojo.entity.SysRole;
import com.suntianci.stock.vo.req.AddRoleReqVo;
import com.suntianci.stock.vo.req.RolesInfoReqVo;
import com.suntianci.stock.vo.req.UpdateRoleReqVo;
import com.suntianci.stock.vo.resp.PageResult;
import com.suntianci.stock.vo.resp.R;

import java.util.List;

/**
 * @ClassName RoleService
 * @Author 孙天赐
 * @Date 2025/1/11 10:39
 * @Description TODO: 角色服务接口
 */
public interface RoleService {

    /**
     * 分页查询角色信息
     * @param rolesInfoReqVo
     * @return
     */
    R<PageResult<SysRole>> getRolesByPage(RolesInfoReqVo rolesInfoReqVo);

    /**
     * 根据角色id删除角色信息
     * @param roleId
     * @return
     */
    R<Void> deleteById(String roleId);

    /**
     * 更新角色的状态信息
     * @param roleId
     * @param status
     * @return
     */
    R<Void> updateRoleStatusById(String roleId, Integer status);

    /**
     * 新增角色
     * @param addRoleReqVo
     * @return
     */
    R<Void> addRole(AddRoleReqVo addRoleReqVo);

    /**
     * 根据角色id查找对应的权限id集合
     * @param roleId
     * @return
     */
    R<List<String>> getAllPermissionByRoleId(String roleId);

    /**
     * 更新角色信息，包含角色关联的权限信息
     * @param updateRoleReqVo
     * @return
     */
    R<Void> updateRole(UpdateRoleReqVo updateRoleReqVo);
}
